#!/bin/bash

# 快速启动脚本 - 一键启动全栈应用

echo "🚀 快速启动全栈应用..."

# 检查Node.js版本
echo "🔍 检查Node.js版本..."
node_version=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
if [ "$node_version" -lt 18 ]; then
    echo "❌ Node.js版本过低，需要 >= 18.0.0"
    echo "💡 请升级Node.js: https://nodejs.org/"
    exit 1
fi
echo "✅ Node.js版本: $(node -v)"

# 检查依赖
echo "📦 检查项目依赖..."
if [ ! -d "node_modules" ]; then
    echo "📥 安装根目录依赖..."
    npm install
fi

if [ ! -d "backend/node_modules" ]; then
    echo "📥 安装后端依赖..."
    cd backend && npm install && cd ..
fi

if [ ! -d "frontend/node_modules" ]; then
    echo "📥 安装前端依赖..."
    cd frontend && npm install && cd ..
fi

if [ ! -d "user-client/node_modules" ]; then
    echo "📥 安装用户端依赖..."
    cd user-client && npm install && cd ..
fi

# 设置数据库
echo "🗄️ 设置数据库服务..."
if [ -f "setup-database.sh" ]; then
    chmod +x setup-database.sh
    ./setup-database.sh
fi

# 启动所有服务
echo "🎯 启动所有服务..."
echo ""
echo "📊 服务端口配置:"
echo "   后端服务器: http://localhost:3000"
echo "   前端服务器: http://localhost:3001"
echo "   用户端服务器: http://localhost:3002"
echo ""

# 使用concurrently启动所有服务
if command -v npx &> /dev/null; then
    echo "🚀 启动后端、前端和用户端服务器..."
    npx concurrently \
        "cd backend && npm run start:unified" \
        "cd frontend && npm start" \
        "cd user-client && npm start" \
        --names "后端,前端,用户端" \
        --prefix-colors "green,blue,yellow"
else
    echo "💡 未找到npx，使用npm脚本启动..."
    npm run dev
fi

echo ""
echo "🎉 应用启动完成！"
echo "💡 使用 Ctrl+C 停止所有服务"